Axiell FotoWare image plugin

The Axiell WebAPI image server configuration

The Axiell.Fotoware.Plugin.dll plugin for the Axiell WebAPI allows for the retrieval (not the ingest) of images or videos (doctype Image or Movie) from a FotoWare DAMS. As all other plugins it allows you or your Axiell system to use getcontent calls to communicate with the DAMS-specific API via the Axiell WebAPI. An appropriate configuration in adlibweb.xml is all you need to retrieve digital content via wwwopac.ashx getcontent queries. For FotoWare you need a configuration similar to the following:

<!-- Image server settings -->
<imageServerConfiguration name="fotoware">
    <servertype>FileSystem</servertype>
    <path>C:\Data\Projects\model5.0\images</path>
    <ImagePlugin type="Axiell.Fotoware.Plugin.FotowarePlugin, Axiell.Fotoware.Plugin">
      <Host>https://ourdomain.org</Host>    
      <ArchiveUrl>/fotoweb/archives/</ArchiveUrl>
      <UniqueIDField>187</UniqueIDField>
      <Oauth>
         <ClientId>1e2ge492-2234-4bww-831a-ab99a52awq7b</ClientId>
         <ClientSecret>TMAEWbEiBMdstNjJPperHsAEVtGUn4pa59-y1me4i5</ClientSecret>
      </Oauth>
      <MaxSize>1200</MaxSize>
    </ImagePlugin>
</imageServerConfiguration>

As you can see there are just 6 elements to configure:

  • Host: the domain part of the URL to the Fotoware repository (the DAMS)
  • ArchiveUrl: the remaining part of the URL to the Fotoware repository
  • UniqueIDField: the Fotoware field containing the unique ID of the asset
  • ClientId: the unique id of the client as provided by the Fotoware repository
  • ClientSecret: the secret client key as provided by the Fotoware repository
  • MaxSize: optional size limit for getting renditions (or previews) from Fotoware. See below for a list of previews with their size values. When a MaxSize is configured and there’s no width and height used on the getcontent request, the preview retrieved will not be of a higher size than the configured MaxSize value.

Previews:

  • 0 (size = 800, width = 800, height = 675)
  • 1 (size = 1200, width = 1200, height = 1013)
  • 2 (size = 1600, width = 1600, height = 1350)
  • 3 (size = 2400, width = 2400, height = 2025)
  • 4 (size = 200, width = 200, height = 169)

Logging is available for this plugin and any switching to a fallback handler will be logged. The functionality is using the generic logging settings for the WebAPI from the global configuration.

When using this plugin, without authentication on the web service that is configured (! - authentication is required only to query the WebAPI and to retrieve the preview/proxy url’s for the video: the retrieved temporary or static URL can play in any browser but always use the authenticated call to get the proper URL), redirection is applied. This means that when you call the WebAPI, the response URL in the browser is the direct endpoint that was configured. This leads to performance improvements, also for Collections, because when Collections calls the WebAPI, Collections will receive the response URL directly and the WebAPI will not first load the media and then pass it through to collections.
This works with or without the fallback=true parameter.
The request URL configured for the WebAPI does need to start with https and because the WebAPI redirects the URL to Collections, the FotoWare service URL needs to be whitelisted in the Collections CSP <WhitelistImages> section similar to this:
<WhitelistImages>https://<proper_fotoware_domain>/axiell/%value%</WhitelistImages>

Getting the original rendition

Simply add &original=true to the Web API call to get the original rendition. The plugin will try and get the original rendition for the requested image. If there’s no original rendition href found, then the plugin (with the image server config fallback attribute set to true) will fall back to what it would return otherwise. Very large images will still be resized because the maxWidth and maxHeight values are set to 1000 by default to prevent super large image downloads. You can bypass that by explicitly setting those properties to 0 in the fotoware image server configuration in adlibweb.xml like shown below:

<!-- Image server settings -->
<imageServerConfiguration name="fotoware" fallback="true">
    <servertype>FileSystem</servertype>
    <path>C:\Data\Projects\model5.0\images</path>
    <maxWidth>0</maxWidth> 
    <maxHeight>0</maxHeight>
    <ImagePlugin type="Axiell.Fotoware.Plugin.FotowarePlugin, Axiell.Fotoware.Plugin">
      <Host>https://ourdomain.org</Host>    
      <ArchiveUrl>/fotoweb/archives/</ArchiveUrl>
      <UniqueIDField>187</UniqueIDField>
      <TimeOut>300000</TimeOut>
        <!-- The default timeout to get media is 60000ms (1 minute). -->
        <!-- Use this property to alter that for very large files.-->
      <Oauth>
         <ClientId>1e2ge492-2234-4bww-831a-ab99a52awq7b</ClientId>
         <ClientSecret>TMAEWbEiBMdstNjJPperHsAEVtGUn4pa59-y1me4i5</ClientSecret>
      </Oauth>      
    </ImagePlugin>
</imageServerConfiguration>